As illustrated in FIG. 1, a conventional Neural Network (NN) 101 receives an input (a single vector, in this example) at an input layer 102, and transforms it through a series of hidden layers 103. Each hidden layer is made up of a set of “neurons” or “nodes,” where each neuron is fully connected to all neurons in the previous layer, and where neurons in a single layer function completely independently and do not share any connections. The last fully-connected layer is called the “output layer” 105, and in classification the output layer setting(s) represents the class scores.
As illustrated in FIG. 2, a “convolutional” Neural Network 201 can take 3D images as input, for instance. In particular, unlike the neural network described in connection with FIG. 1, the layers of a convolutional neural network have neurons arranged in 3 dimensions: width, height, depth. Note that the word depth here refers to the third dimension of an activation volume, not to the depth of a full neural network, which can refer to the total number of layers in a network. The neurons in a layer can be configured to be connected to a small region of the layer before it, instead of all of the neurons in a fully-connected manner. The convolutional neural network reduces the full image into a single vector of class scores 205, arranged along the depth dimension.
Although advances have been made in prior art neural networks, once a prior art neural network is trained using training data, a conventional neural network system is incapable of effectively recognizing or determining when incorrect output is generated. This shortcoming of a conventional system is compounded by the lack of the conventional systems having effective mechanisms to take corrective measures when incorrect output is generated. These shortcomings prevent conventional systems from adaptively reducing mistakes or incorrect output with new information (e.g., training with new data).